Install library yang belum ada di RStudio Anda. Library ggplot2 dan plotly digunakan untuk visualisasi, sedangkan lubridate digunakan untuk mempermudah format tanggal. Selanjutnya jalankan skrip seperti biasa.
library(ggplot2)
library(plotly)
library(lubridate)
library(dplyr)
Untuk keperluan pertemuan ini, kita akan menggunakan dataset yang diambil dari tautan berikut ini: https://www.kaggle.com/canggih/anime-data-score-staff-synopsis-and-genre. Silakan unduh, ekstrak dari zip, kemudian masukkan file ke dalam direktori projek yang sudah dibuat.
File yang diunduh bertipe CSV (comma separated values) yang bisa diimpor ke R dengan perintah berikut:
df <- read.csv("dataanime.csv")
colnames(df)
## [1] "Title" "Type" "Episodes" "Status"
## [5] "Start.airing" "End.airing" "Starting.season" "Broadcast.time"
## [9] "Producers" "Licensors" "Studios" "Sources"
## [13] "Genres" "Duration" "Rating" "Score"
## [17] "Scored.by" "Members" "Favorites" "Description"
Selanjutnya, untuk keperluan pengolahan lebih lanjut, kolom Start.airing dan End.airing kita ubah tipenya menjadi tanggal dengan bantuan perintah ymd() yang terdapat pada library lubridate.
df$Start.airing <- ymd(df$Start.airing)
df$End.airing <- ymd(df$End.airing)
Ada 4 tujuan dari visualisasi data, yaitu:
Visualisasi jenis ini digunakan untuk mengetahui persebaran dari suatu data/variabel.
Visualisasi histogram menggunakan ggplot dapat dicontohkan pada skrip berikut. Sebagai contoh, kita akan mengambil variabel Score untuk dibuat histogram.
ggplot(df,aes(Score)) +
geom_histogram()
Contoh lain, sebagai variasi dari histogram yang ditambah dengan density:
ggplot(df,aes(Score)) +
geom_histogram(aes(y=..density..)) +
geom_density(alpha=.2, fill="#FF6666")
Sedangkan apabila menggunakan library plotly, maka kita tuliskan skrip berikut ini.
plot_ly(df,x = ~Score, type = "histogram")
Jenis visualisasi kedua dalam tipe Distribution yaitu Boxplot. Menggunakan ggplot kita dapat membuat boxplot sebagai berikut.
ggplot(df,aes(Score)) +
geom_boxplot()
Jika ingin membandingkan beberapa boxplot, kita dapat menambahkan data lain (misal Type) dengan memanfaatkan axis y sebagai berikut:
ggplot(df,aes(x=Score,y=Type)) +
geom_boxplot()
Untuk visualisasi yang sama menggunakan library plotly, skripnya adalah:
plot_ly(df,x=~Score,type = "box")
plot_ly(df,x=~Score,y=~Type,type = "box")
Visualisasi tipe ini bertujuan untuk membandingkan antar nilai atau kelompok nilai
Seperti yang sudah diketahui, bahwa Bar chart membutuhkan 1 variabel numerik dan 1 kategorik. Oleh karena itu, untuk membentuk Bar chart kita akan membuat data agregat sebagai berikut:
dfg <- df %>%
group_by(Type) %>%
summarise(rerata_score=mean(Score),rerata_member=mean(Members),rerata_favorite=mean(Favorites),rerata_scoredby=mean(Scored.by))
dfg
## # A tibble: 6 x 5
## Type rerata_score rerata_member rerata_favorite rerata_scoredby
## <chr> <dbl> <dbl> <dbl> <dbl>
## 1 Movie 7.90 68404. 674. 38288.
## 2 Music 7.75 19561. 162. 12224.
## 3 ONA 7.71 43580. 407. 20924.
## 4 OVA 7.86 42707. 382. 22092.
## 5 Special 7.82 38316. 94.2 21332.
## 6 TV 7.95 171893. 3994. 89112.
Untuk visualisasi bar chart, sebagai contoh kita gunakan kolom rerata_score sebagai data numerik dan Type sebagai data kategorik.
ggplot(dfg,aes(x=rerata_score,y=Type)) +
geom_col()
Dengan data yang sama, kita dapat menampilkan bar chart menggunakan plotly sebagai berikut:
plot_ly(dfg,x=~rerata_member,y=~Type,type = "bar")
Untuk line chart, kita akan menggunakan variabel waktu, yaitu Start.airing berikut
ggplot(df,aes(x=Start.airing,y=Members)) +
geom_line()
Sedangkan pada penggunaan library plotly kita terlebih dahulu harus mengurutkan axis x yang berisi waktu sebagai berikut.
df <- df %>%
arrange(Start.airing)
Kemudian hasilnya kita gunakan untuk menampilkan line chart berikut
plot_ly(df,x=~Start.airing,y=~Score,type="scatter",mode="lines")
Jenis visualisasi ini untuk melihat relasi antar variabel.
Scatter plot merupakan salah satu jenis visualisasi yang akan sering kita gunakan. Pembuatan chart ini menggunakan ggplot adalah sebagai berikut:
ggplot(df,aes(x=Score,y=Members)) +
geom_point()
Sedangkan pada plotly kita dapat tuliskan sebagai berikut
plot_ly(df,x=~Score,y=~Members,type="scatter")
Pada dasarnya, bubble chart sama dengan scatter plot dengan menambahkan 1 atau 2 variabel numerik baru untuk warna dan ukuran titik. Contoh penggunaannya dalam ggplot adalah
ggplot(df,aes(x=Favorites,y=Members,size=Score,color=Type)) +
geom_point()
Sedangkan ketika menggunakan plotly dapat kita gunakan skrip berikut
plot_ly(df,x=~Members,y=~Favorites,type="scatter",mode="markers",
marker = list(size = ~Score, opacity = 0.5))
Visualisasi tipe ini bertujuan untuk melihat porsi dalam sebuah kesatuan kelompok atau variabel. Pada praktek di sini, kita akan menggunakan data yang sama dengan visualisasi bar chart pada bagian C.2.a di atas.
Pie chart cukup populer digunakan dalam visualisasi data, meskipun sebenarnya tidak direkomendasikan oleh para ahli visualisasi data. Pembuatan pie chart menggunakan ggplot adalah sebagai berikut:
ggplot(dfg, aes(x="", y=rerata_member, fill=Type)) +
geom_bar(stat="identity", width=1) +
coord_polar("y", start=0)
Sedangkan bila kita menggunakan library plotly, perintahnya adalah:
plot_ly(dfg, labels = ~Type, values = ~rerata_member, type = 'pie')
Jenis visualisasi ini tidak terlalu sering digunakan untuk keperluan eksplorasi data. Penulisan skripnya menggunakan plotly adalah sebagai berikut:
fig <- plot_ly(dfg, x = ~Type, y = ~rerata_member, type = 'bar',name="Member")
fig <- fig %>% add_trace(y = ~rerata_scoredby, name = 'Favorite')
fig %>% layout(yaxis = list(title = 'Count'), barmode = 'stack')
Buatlah tampilan visual (boleh menggunakan chart tipe manapun yang sesuai) menggunakan data pada kolom Starting.season, Studios, atau Sources. Boleh digabung dengan kolom-kolom lain, tapi minimal satu dari 3 kolom tadi harus ada. Kemudian ceritakan informasi menarik apa yang dapat Anda temukan dari hasil visual tersebut.